package myzzyl.service;

import com.baomidou.mybatisplus.extension.service.IService;
import myzzyl.constants.CommonStrField;
import myzzyl.domain.dto.SysResourceDto;
import myzzyl.domain.pojo.SysResource;
import myzzyl.domain.vo.MenuVo;
import myzzyl.domain.vo.SysResourceVo;
import myzzyl.domain.vo.TreeVo;

import java.util.List;

/**
* @author 33249
* @description 针对表【sys_resource(权限表)】的数据库操作Service
* @createDate 2025-08-18 17:51:42
*/
public interface SysResourceService extends IService<SysResource> {

    /**
     * 获取资源列表数据
     * @param sysResourceDto 资源表单请求封装类
     * @return 返回值
     */
    List<SysResourceVo> getAll(SysResourceDto sysResourceDto);

    /**
     * 获取资源详情数据
     * @param resourceNo 资源编号
     * @return 返回值
     */
    SysResourceVo getInfo(String resourceNo);


    /**
     * 新增资源
     * @param sysResourceDto 资源表单请求封装类
     * @return 返回值
     */
    boolean add(SysResourceDto sysResourceDto);


    /**
     * 编辑资源
     * @param sysResourceDto 资源表单请求封装类
     * @return 返回值
     */
    boolean edit(SysResourceDto sysResourceDto);


    /**
     * 删除资源
     * @param resourceNo 资源编号
     * @return 返回值
     */
    boolean remove(String resourceNo);

    /**
     * 启用或禁用资源
     * @param sysResourceDto 资源表单请求封装类
     * @return 返回值
     */
    boolean enableOrDisableSysResource(SysResourceDto sysResourceDto);

    /**
     * 获取树形资源
     * @param sysResourceDto 资源表单请求封装类
     * @return 返回值
     */
    TreeVo tree(SysResourceDto sysResourceDto);


    /**
     * 获取资源菜单
     * @return 返回值
     */
    List<MenuVo> getMenus();


    /**
     * 根据用户id查询用户绑定的按钮资源
     * @param id 用户id
     * @return 返回值
     */
    List<String> selectButtonResourcesByUserId(Long id);
}
